package br.ufc.persis.controller;

import java.util.Collection;
import java.util.Scanner;

import br.ufc.persis.dao.ProjetoDAO;
import br.ufc.persis.dao.impl.ProjetoJPADAO;
import br.ufc.persis.model.Departamento;
import br.ufc.persis.model.Projeto;
import br.ufc.persis.view.ViewProjeto;

public class ProjetoController {

	private static Scanner sc = new Scanner(System.in);
	
	public static void processar(int opc, Departamento departamento) {
		if(opc == ViewProjeto.NOVO){
			cadastrarProjeto(departamento);
		}else if(opc == ViewProjeto.LISTAR){
			mostrarProjetos(departamento);
		}else if(opc == ViewProjeto.EXCLUIR){
			excluirProjeto();
		}
	}
	
	private static void mostrarProjetos(Departamento departamento) {
		// TODO Auto-generated method stub
		Collection<Projeto> projetos = departamento.getProjetos();
		for (Projeto projeto : projetos) {
			System.out.println(projeto);
			System.out.println("----------");
		}
	}

	private static void cadastrarProjeto(Departamento departamento){
		ProjetoDAO dao = new ProjetoJPADAO();
		System.out.println("Digite o nome do projeto: ");
		String nome = sc.nextLine();
		System.out.println("Digite a quantidade de dias para o projeto: ");
		int dias = Integer.parseInt(sc.nextLine());
		
		Projeto projeto = new Projeto(nome, dias, departamento);
		dao.beginTransaction();
		dao.save(projeto);
		dao.commit();
		dao.close();
		
	}

	private static void excluirProjeto(){
		ProjetoDAO dao = new ProjetoJPADAO();
		System.out.println("Digite o cédigo do projeto: ");
		long id = sc.nextLong();
		Projeto projeto = dao.find(id);
		System.out.println("Deseja realmente excluir o projeto "+projeto.getNome()+" ?(1 - sim/2 - não)");
		int opc = Integer.parseInt(sc.next());
		if(opc == 1){
			dao.beginTransaction();
			dao.delete(projeto);
			dao.commit();
			dao.close();
		}else{
			return;
		}
	}
}
